package com.example.workflow.service;

import com.example.workflow.dto.ApprovalInfo;
import com.example.workflow.dto.DispatcherOrder;
import com.example.workflow.dto.FormDto;
import com.example.workflow.pojo.Form;
import com.example.workflow.vo.FormVo;
import com.example.workflow.vo.RemindVo;

import java.util.List;


public interface FormService {
    /**
     * 新建工单
     *
     * @param formDto
     */
    void create(FormDto formDto);

    /**
     * 提交工单
     *
     * @param formDto
     */
    void submit(FormDto formDto);

    /**
     * 查看个人要审批的单子
     *
     * @return 报告单列表
     */
    List<FormVo> list(Long id, String type, String status);

    /**
     * 查看个人操作的单子
     *
     * @return
     */
    List<FormVo> process();

    /**
     * 审批接口
     *
     * @return
     */
    Object approval(ApprovalInfo approvalInfo);

    /**
     * 审批驳回
     *
     * @param orderId 工单ID
     */
    void reject(Long orderId);

    /**
     * 分派工单
     *
     * @param dispatcherOrder
     */
    void dispatcher(DispatcherOrder dispatcherOrder);

    /**
     * 工单详细内容
     *
     * @param id
     * @return
     */
    Form details(Long id);

    /**
     * 完成工单
     *
     * @param orderId
     */
    void complete(Long orderId,String log);

    /**
     * 超时预警信息
     *
     * @return
     */
    long remind();

    /**
     * 删除草稿工单
     *
     * @param id
     */
    void delete(Long id);
}
